package com.dkd.flow.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dkd.common.annotation.Excel;
import com.dkd.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
/**
 * 流程实例 对象 e_process_instances
 *
 * @author itheima
 * @date 2025-03-02
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EProcessInstances extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    private Long ID;
    private Long operationGroupId;
    /**
     * 节点已审批人数
     */
    @Excel(name = "当前节点已完成审批的数量")
    private Integer nodeApprovedCount;
    /**
     * 所需审批总人数
     */
    @Excel(name = "当前节点所需审批完成的数量")
    private Integer requiredApprovalCount;
    /**
     * 流程定义ID
     */
    @Excel(name = "流程定义ID")
    private Long processDefinitionId;
    /**
     * 复制自哪个流程
     */
    @Excel(name = "复制自哪个流程")
    private Long copyFromId;
    /**
     * 公司
     */
    @Excel(name = "公司")
    private Long companyId;
    /**
     * 部门
     */
    @Excel(name = "部门")
    private Long deptId;
    /**
     * 审批标题
     */
    @Excel(name = "审批标题")
    private String title;
    /**
     * 表单名称[单据名称、表单名称统一名]
     */
    @Excel(name = "表单名称[单据名称、表单名称统一名]")
    private String billName;
    /**
     * 实际提交人
     */
    @Excel(name = "实际提交人")
    private Long submitter;
    /**
     * 流程类型
     */
    @Excel(name = "流程类型")
    private Long flowType;
    /**
     * 流程状态：-1:删除 0:草稿 1:处理中 2:拒绝 3:完成
     */
    @Excel(name = "流程状态：-1:删除 0:草稿 1:处理中 2:拒绝 3:完成 ")
    private Long flowStatus;
    /**
     * 删除前的状态
     */
    @Excel(name = "删除前的状态")
    private Long oldStatus;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private Long currNodeId;
    /**
     * 流程完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(
            name = "流程完成时间",
            width = 30,
            dateFormat = "yyyy-MM-dd"
    )
    private Date completionTime;
    /**
     * 回写表单
     */
    @Excel(name = "回写表单")
    private String formValue;
    /**
     * 流程子类型
     */
    @Excel(name = "流程子类型")
    private String subType;
    /**
     * 0:未销假 1:有销假
     */
    @Excel(name = "0:未销假 1:有销假")
    private Long resumptionLeaveStatus;
    /**
     * 销假时长
     */
    @Excel(name = "销假时长")
    private BigDecimal resumptionLeaveDuration;
    /**
     * 最小部门名字
     */
    @Excel(name = "最小部门名字")
    private String leaveDeptName;
    /**
     * 最小部门ID
     */
    @Excel(name = "最小部门ID")
    private String leaveDeptId;
    /**
     * 部门全路径ID
     */
    @Excel(name = "部门全路径ID")
    private String leaveDeptAllId;
    /**
     * 部门名字全路径
     */
    @Excel(name = "部门名字全路径")
    private String leaveDeptAllName;
    /**
     * 岗位ID
     */
    @Excel(name = "岗位ID")
    private Long positionId;
    /**
     * 是否兼职岗位提交 1：是 0：不是
     */
    @Excel(name = "是否兼职岗位提交 1：是 0：不是")
    private Long concurrentPost;
    /**
     * 工作地
     */
    @Excel(name = "工作地")
    private String officeLocation;
    /**
     * 紧急级别(-1:默认 1:紧急  0:紧急)
     */
    @Excel(name = "紧急级别(-1:默认 1:紧急  0:紧急)")
    private Long emergencyLevel;
    /**
     * 申请部门
     */
    @Excel(name = "申请部门")
    private Long applicationDeptId;
    @TableField(exist = false)
    private Integer operation;
}
